package com.rescue.forum.entity;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 文章信息
 *
 * @TableName forum_article
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ForumArticle implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 文章ID
     */
    @NotBlank(message = "[文章ID]不能为空")
    @Size(max = 15, message = "编码长度不能超过15")
    @ApiModelProperty("文章ID")
    private String articleId;
    /**
     * 板块ID
     */
    @ApiModelProperty("板块ID")
    private Integer boardId;
    /**
     * 板块名称
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("板块名称")

    private String boardName;
    /**
     * 父级板块ID
     */
    @ApiModelProperty("父级板块ID")
    private Integer pBoardId;
    /**
     * 父板块名称
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("父板块名称")
    private String pBoardName;
    /**
     * 用户ID
     */
    @NotBlank(message = "[用户ID]不能为空")
    @Size(max = 15, message = "编码长度不能超过15")
    @ApiModelProperty("用户ID")
    private Integer userId;
    /**
     * 昵称
     */
    @NotBlank(message = "[昵称]不能为空")
    @Size(max = 20, message = "编码长度不能超过20")
    @ApiModelProperty("昵称")
    private String nickName;
    /**
     * 最后登录ip地址
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("最后登录ip地址")
    private String userIpAddress;
    /**
     * 标题
     */
    @NotBlank(message = "[标题]不能为空")
    @Size(max = 150, message = "编码长度不能超过150")
    @ApiModelProperty("标题")
    private String title;
    /**
     * 封面
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("封面")
    private String cover;
    /**
     * 内容
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("内容")
    private String content;
    /**
     * markdown内容
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("markdown内容")
    private String markdownContent;
    /**
     * 0:富文本编辑器 1:markdown编辑器
     */
    @NotNull(message = "[0:富文本编辑器 1:markdown编辑器]不能为空")
    @ApiModelProperty("0:富文本编辑器 1:markdown编辑器")
    private Integer editorType;
    /**
     * 摘要
     */
    @Size(max = 200, message = "编码长度不能超过200")
    @ApiModelProperty("摘要")
    private String summary;
    /**
     * 发布时间
     */
    @ApiModelProperty("发布时间")
    private LocalDateTime postTime;
    /**
     * 最后更新时间
     */
    @ApiModelProperty("最后更新时间")
    private LocalDateTime lastUpdateTime;
    /**
     * 阅读数量
     */
    @ApiModelProperty("阅读数量")
    private Integer readCount;
    /**
     * 点赞数
     */
    @ApiModelProperty("点赞数")
    private Integer goodCount;
    /**
     * 评论数
     */
    @ApiModelProperty("评论数")
    private Integer commentCount;
    /**
     * 0未置顶  1:已置顶
     */
    @ApiModelProperty("0未置顶  1:已置顶")
    private Integer topType;
    /**
     * 0:没有附件  1:有附件
     */
    @ApiModelProperty("0:没有附件  1:有附件")
    private Integer attachmentType;
    /**
     * -1已删除 0:待审核  1:已审核
     */
    @ApiModelProperty("-1已删除 0:待审核  1:已审核 ")
    private Integer status;
}
